<?php

namespace app\common\model\Business;

// 引入TP基础模型
use think\Model;

// 用户模型
class Business extends Model
{
    // 设置当前模型对应的数据表名称
    protected $name = 'business';

    // 开启自动写入时间戳字段 默认时间类型是int，如果是datetime的，那么需要把true改为datetime
    protected $autoWriteTimestamp = true;

    // 定义时间戳字段名 默认创建时间字段为create_time，更新时间字段为update_time
    protected $createTime = 'createtime';

    //  如果不需要更新时间把该属性设置为false
    protected $updateTime = false;

    // 追加数据表不存在的字段
    protected $append = [
        'avatar_text', // 头像路径
        'poster_text', // 海报底图
        'province_text', // 省份文本
        'city_text', // 城市文本
        'district_text', // 区县文本
        'gender_text', // 性别文本
        'auth_text', // 认证状态文本
        'createTime_text', // 创建时间文本
        'region_text', // 省市区
        'mobile_text',// 手机字符串
    ];

    /**
     * 定义数据表中不存在的字段的获取器  以get不存在的字段名Attr该规则命名方法名（根据业务需求）
     * @param $value 当前字段的值
     * @param $data 当前的所有数据数组
     */
    public function getAvatarTextAttr($value, $data)
    {
        $url = request()->domain();

        $avatar = !empty($data['avatar']) ? $data['avatar'] : '/assets/img/avatar.png';

        return $url . $avatar;
    }

    // 省份
    public function getProvinceTextAttr($value, $data)
    {
        $province = !empty($data['province']) ? $data['province'] : '';

        $name = '';
        if (!empty($province)) {
            $name = model('Region')::where('code', $province)->value('name');
        }

        return $name;
    }

    // 城市
    public function getCityTextAttr($value, $data)
    {
        $city = !empty($data['city']) ? $data['city'] : '';

        $name = '';
        if (!empty($city)) {
            $name = model('Region')::where('code', $city)->value('name');
        }

        return $name;
    }

    public function getRegionTextAttr($value,$data)
    {
        $region = '';

        // 省
        $province = !empty($data['province']) ? $data['province'] : '';

        if(!empty($province))
        {
            $name = model('Region')::where('code', $province)->value('name');
            $region = $name;
        }

        // 市
        $city = !empty($data['city']) ? $data['city'] : '';

        if(!empty($city))
        {
            $name = model('Region')::where('code', $city)->value('name');
            $region .= '-' . $name;
        }

        // 区
        $district = !empty($data['district']) ? $data['district'] : '';

        if(!empty($district))
        {
            $name = model('Region')::where('code', $district)->value('name');
            $region .= '-' . $name;
        }

        return $region;
    }

    // 区县
    public function getDistrictTextAttr($value, $data)
    {
        $district = !empty($data['district']) ? $data['district'] : '';

        $name = '';
        if (!empty($district)) {
            $name = model('Region')::where('code', $district)->value('name');
        }

        return $name;
    }

    public function getPosterTextAttr($value, $data) {
        $url = request()->domain();

        $poster = !empty($data['poster']) ? $data['poster'] : config('site.poster');

        return $url . $poster;
    }

    public function getGenderTextAttr($value, $data) {
        $gender = !empty($data['gender']) ? $data['gender'] : 0;

        $text = '';
        if ($gender == 1) {
            $text = '男';
        } elseif ($gender == 2) {
            $text = '女';
        }

        return $text;
    }

    public function getAuthTextAttr($value, $data) {
        $auth = !empty($data['auth']) ? $data['auth'] : 0;

        $text = '';
        if ($auth == 1) {
            $text = '已认证';
        } elseif ($auth == 0) {
            $text = '未认证';
        }

        return $text;
    }

    public function getCreateTimeTextAttr($value, $data) {
        $create_time = !empty($data['createtime']) ? $data['createtime'] : '';

        return date('Y-m-d H:i:s', $create_time);
    }
    
    public function getMobileTextAttr($value,$data)
    {
        $mobile = isset($data['mobile']) ? $data['mobile'] : '';

        return substr_replace($mobile,'****',3,4);
    }
}
